package com.common.constants;

import java.util.ArrayList;
import java.util.List;

/**
 * @Brief 时间相关常量池
 * @Author chenyl
 * @Date 2023-08-01
 * @Version 1.0.0
 */
public class DateFormatConstantPool {
    /**
     * 年月日时分秒时间格式集合
     */
    public static final List<String> DATE_TIME_FORMAT_LIST = new ArrayList<>();
    /**
     * 年月日时分秒时间格式集合
     */
    public static final List<String> DATE_FORMAT_LIST = new ArrayList<>();
    /**
     * 年月日时分秒时间格式集合
     */
    public static final List<String> TIME_FORMAT_LIST = new ArrayList<>();
    /**
     * 时间格式：yyyyMM
     */
    public static final String YEAR_MONTH = "yyyyMM";
    /**
     * 时间格式：yyyy-MM
     */
    public static final String YEAR_MONTH_HYPHEN = "yyyy-MM";
    /**
     * 时间格式：yyyy/MM
     */
    public static final String YEAR_MONTH_SLASH = "yyyy/MM";
    /**
     * 时间格式：yyyyMMdd
     */
    public static final String YEAR_MONTH_DAY = "yyyyMMdd";
    /**
     * 时间格式：yyyy-MM-dd
     */
    public static final String YEAR_MONTH_DAY_HYPHEN = "yyyy-MM-dd";
    /**
     * 时间格式：yyyy/MM/dd
     */
    public static final String YEAR_MONTH_DAY_SLASH = "yyyy/MM/dd";
    /**
     * 时间格式：yyyyMMdd HH:mm:ss
     */
    public static final String ALL = "yyyyMMdd HH:mm:ss";
    /**
     * 时间格式：yyyyMMdd HH:mm:ss
     */
    public static final String ALL_NO_SECOND = "yyyyMMdd HH:mm";
    /**
     * 时间格式：yyyy-MM-dd HH:mm:ss
     */
    public static final String ALL_HYPHEN = "yyyy-MM-dd HH:mm:ss";
    /**
     * 时间格式：yyyy-MM-dd HH:mm:ss
     */
    public static final String ALL_HYPHEN_NO_SECOND = "yyyy-MM-dd HH:mm";
    /**
     * 时间格式：yyyy/MM/dd HH:mm:ss
     */
    public static final String ALL_SLASH = "yyyy/MM/dd HH:mm:ss";
    /**
     * 时间格式：yyyy/MM/dd HH:mm:ss
     */
    public static final String ALL_SLASH_NO_SECOND = "yyyy/MM/dd HH:mm";
    /**
     * 时间格式：yyyy/MM/dd HH:mm:ss
     */
    public static final String HOUR_MINUTE = "HH:mm";
    /**
     * 时间格式：HH:mm:ss
     */
    public static final String HOUR_MINUTE_SECOND = "HH:mm:ss";

    /**
     * 初始化容器
     */
    static {
        //dataTime
        DATE_TIME_FORMAT_LIST.add(ALL);
        DATE_TIME_FORMAT_LIST.add(ALL_HYPHEN);
        DATE_TIME_FORMAT_LIST.add(ALL_SLASH);
        DATE_TIME_FORMAT_LIST.add(ALL_NO_SECOND);
        DATE_TIME_FORMAT_LIST.add(ALL_HYPHEN_NO_SECOND);
        DATE_TIME_FORMAT_LIST.add(ALL_SLASH_NO_SECOND);
        //date
        DATE_FORMAT_LIST.add(YEAR_MONTH_DAY);
        DATE_FORMAT_LIST.add(YEAR_MONTH_DAY_SLASH);
        DATE_FORMAT_LIST.add(YEAR_MONTH_DAY_HYPHEN);
        DATE_FORMAT_LIST.add(YEAR_MONTH);
        DATE_FORMAT_LIST.add(YEAR_MONTH_HYPHEN);
        DATE_FORMAT_LIST.add(YEAR_MONTH_SLASH);
        //time
        TIME_FORMAT_LIST.add(HOUR_MINUTE_SECOND);
        TIME_FORMAT_LIST.add(HOUR_MINUTE);
    }
}
